#定义一个素数范围的集合，排除2及2的倍数
def  int_iter():
	n = 1
	while True:
		n = n + 2
		yield n

#排除函数
def int_divisible(n):
	return lambda x : x % n

#得到素数的general
def primes():
	it = int_iter()
	yield 2
	while True:
		n = next(it)
		yield n
		it =filter(int_divisible(n), it)

#输出素数集合
primeMax = input("输入素数的范围 [0~?)")
primeMax = int(primeMax)
for n in primes():
	if n < primeMax:
		print(n)
	else:
		break

